package com.culturalCenter.dataCenter.service.site;

import com.culturalCenter.dataCenter.customEntity.responseParam.site.SiteUsedResponse;
import com.culturalCenter.dataCenter.customEntity.responseParam.site.UsedRateResponse;
import com.culturalCenter.dataCenter.customEntity.site.CustomSiteUsedHistory;
import com.culturalCenter.dataCenter.entity.site.SiteUsedCount;
import com.github.pagehelper.PageInfo;

import java.util.Date;
import java.util.List;

public interface SiteUsedCountService {

    /**
     * SiteUsedCount分页查询
     *
     * @param page
     * @param size
     *
     * @return
     */
    PageInfo<SiteUsedCount> findPage(int page, int size);

    /**
     * 删除SiteUsedCount
     *
     * @param id
     *
     * @return
     */
    Integer delete(String id);

    /**
     * 修改SiteUsedCount数据
     *
     * @param siteUsedCount
     *
     * @return
     */
    Integer update(SiteUsedCount siteUsedCount);

    /**
     * 新增SiteUsedCount
     *
     * @param siteUsedCount
     *
     * @return
     */
    Integer add(SiteUsedCount siteUsedCount);

    /**
     * 根据ID查询SiteUsedCount
     *
     * @param id
     *
     * @return
     */
    SiteUsedCount findById(String id);

    /**
     * 查询所有SiteUsedCount
     *
     * @param siteUsedCount
     *
     * @return
     */
    List<SiteUsedCount> findAll(SiteUsedCount siteUsedCount);

    /**
     * 查询场地使用率
     *
     * @param date
     * @param year
     * @param near
     *
     * @return
     */
    UsedRateResponse getUsageRate(Date date, Date year, String near);

    /**
     * 查询场地今年使用情况统计数据
     *
     * @param siteUsedCount
     *
     * @return
     */
    SiteUsedCount findOnResult(SiteUsedCount siteUsedCount);

    /**
     * 场地使用情况_月统计和详情
     *
     * @param siteId
     * @param date
     *
     * @return
     */
    SiteUsedResponse getSiteUsed(String siteId, Date date);

    /**
     * 历史使用率
     *
     * @param pageNum
     * @param pageSize
     * @param siteName
     * @param startDate
     * @param endDate
     *
     * @return
     */
    PageInfo<CustomSiteUsedHistory> getUsageRateHistory(int pageNum, int pageSize, String siteName, String startDate, String endDate);

}
